Loggest thine Stuff
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
2.2 KiB

  1. <script lang="ts" context="module">
  2. import type { Load } from "@sveltejs/kit/types/internal";
  3. import { sl3 } from "$lib/clients/sl3";
  4. export const load: Load = async({ fetch, params, stuff }) => {
  5. const scopeId = parseInt(params.scope.split("-")[0]);
  6. let interval = parseInterval(params.interval, new Date());
  7. if (interval == null) {
  8. // The Reapers are done by then anyway...
  9. interval = {min: new Date("2000-01-01T00:00:00Z"), max: new Date("2187-01-01T00:00:00Z")}
  10. }
  11. const sprints = await sl3(fetch, stuff.idToken).listSprints(scopeId, interval);
  12. return {
  13. stuff: {
  14. title: "Sprints",
  15. },
  16. props: {
  17. sprints,
  18. intervalString: params.interval,
  19. },
  20. };
  21. }
  22. </script>
  23. <script lang="ts">
  24. import { goto } from "$app/navigation";
  25. import Main from "$lib/components/layout/Main.svelte";
  26. import DeletionModal from "$lib/modals/DeletionModal.svelte";
  27. import ItemAcquireModal from "$lib/modals/ItemAcquireModal.svelte";
  28. import ItemCreateModal from "$lib/modals/ItemCreateModal.svelte";
  29. import HistorySelector from "$lib/components/common/HistorySelector.svelte";
  30. import { getScopeContext } from "$lib/components/contexts/ScopeContext.svelte";
  31. import parseInterval from "$lib/utils/timeinterval";
  32. import type Sprint from "$lib/models/sprint";
  33. import SprintListContext from "$lib/components/contexts/SprintListContext.svelte";
  34. import SprintCreateUpdateModal from "$lib/modals/SprintCreateUpdateModal.svelte";
  35. import SprintSectionList from "$lib/components/scope/SprintSectionList.svelte";
  36. export let intervalString: string
  37. export let sprints: Sprint[]
  38. const {lastHistoryRange} = getScopeContext();
  39. function changeInterval(e: Event) {
  40. const target = e.target as HTMLSelectElement;
  41. lastHistoryRange.set(target.value);
  42. goto(`./${target.value}`);
  43. }
  44. </script>
  45. <SprintListContext sprints={sprints} intervalString={intervalString}>
  46. <Main big>
  47. <HistorySelector label="Sprints" value={intervalString} on:change={changeInterval} />
  48. <SprintSectionList />
  49. </Main>
  50. <ItemCreateModal />
  51. <ItemAcquireModal />
  52. <DeletionModal />
  53. <SprintCreateUpdateModal />
  54. </SprintListContext>